1. Technical Field
The invention relates to flash memory devices, and more particularly, to a method of executing wear leveling while taking into consideration ambient temperature information of the flash memory devices.
2. Description of the Conventional Art
Flash memory has become an increasingly popular type of memory in recent years, and flash memory is now used in a variety of consumer electronic devices. Flash memory device manufacturers typically specify a range of operating temperatures under which the flash memory devices should be operated for optimum results. However, the flash memory device manufacturers ultimately have no control over the temperature conditions in which the end user will use the flash memory devices.
It has been observed that the operation and behavior of flash memory devices can be affected by temperature. If data is programmed in a flash memory at one extreme temperature and then later read at an opposite extreme temperature, the read data may not match the programmed data due to electron displacement effects that are influenced by the temperature change.
Please refer to FIG. 1. FIG. 1 is a diagram showing examples of two worst case scenarios for producing data errors due to temperature differences between data programming and data reading actions performed on a prior art flash memory device. Scenario 1 contains steps 10, 12, and 14. In step 10 data is programmed to the flash memory device when the ambient temperature information of the flash memory device is −40° C. In step 12 data is read from the flash memory device when the ambient temperature information of the flash memory device is 25° C. In step 14 data is read from the flash memory device when the ambient temperature information of the flash memory device is 85° C. Thus, in scenario 1, the temperature in step 10 is considerably lower than the temperature in step 14. As a result, the data read in step 14 may not match the data programmed in step 10 due to electron displacement effects that are influenced by the large temperature change from step 10 to step 14.
Scenario 2 is a substantial opposite situation depicted in scenario 1. Scenario 2 contains steps 20, 22, and 24. In step 20 data is programmed to the flash memory device when the ambient temperature information of the flash memory device is 85° C. In step 22 data is read from the flash memory device when the ambient temperature information of the flash memory device is 25° C. In step 24 data is read from the flash memory device when the ambient temperature information of the flash memory device is −40° C. Thus, in scenario 2, the temperature in step 20 is much higher than the temperature in step 24. Consequently, the data read in step 24 may not match the data programmed in step 20 due to electron displacement effects that are influenced by the temperature change.
Another factor that may be affected by the temperature change is the occurrence of read disturb errors. Read disturb errors arise when non-selected memory blocks are unintentionally programmed while selected neighboring memory blocks are programmed. Extreme operating temperatures of flash memory devices outside of the optimum operating temperature ranges can exacerbate the effects of read disturb errors.
Due to the inability to predict under what operating temperatures the end user will operate a flash memory device, there exists the possibility of data loss due to wide temperature fluctuations. Since flash memory devices may be used in harsh environments, such as in industrial or automotive applications, there is a need for flash memory devices that can maintain data integrity despite these temperature fluctuations.
In conventional flash memory devices error correction code (ECC) engines are often used to correct errors that are detected in data. However, there exists no simple and effective mechanism for forecasting errors or even preventing the errors from occurring due to temperature fluctuations.